引言
Java vs Python,谁能胜出?作为程序猿,这个问题除了从数据角度分析外,我们更应该从编程语言本身的使用和体验来感受对比一番,然后再谨慎的给出自己的答案。
资历
Java诞生于1995年,Python诞生于1991年,是不是很意外,大家以为Java廉颇老矣,Python年纪却更大。
毛发的PK
Java之父James Gosling
python之父Guido van Rossum
Hello World
Java版
1 | public class HelloWorld { |
Python版
1 | print("hello python world") |
Java说:Hi, code boy.
- 先定义一个类
- 再定义一个main入口方法
- 然后打印输出hello world
Python说:Hi, code boy. Just hello world!
字符串
要说代码中最丑的字符串是什么,那必须是sql。
Java中的sql
1 | String uglySql = "SELECT * FROM" |
Python中的sql
1 | beautiful_sql = """ |
列表
钢铁侠:Hi,贾维斯,给我一份最新的世界电影票房排名前10的榜单
Java版贾维斯
1 | List<String> top10 = Arrays.asList("Avatar", |
Python版贾维斯
1 | top10 = [ |
钢铁侠:Ok,贾维斯,well done,现在给我排名前3的就行了,我比较关注
Java版贾维斯
1 | List<String> top3 = top10.subList(0,3); |
Python版贾维斯
1 | top3 = top10[:3] |
映射/字典
英文不是很好,上面的榜单谁帮忙翻译一下?
Java
1 | Map<String, String> top10Map = new HashMap<>(); |
Python
1 | top10_dic = { |
分支
假如可以回到过去,你会做什么?
Java
1 | Calendar timeMachine = Calendar.getInstance(); |
Python
1 | time_machine = datetime.datetime.now() |
循环
90年代,当我们还小时,被罚抄书了,多么不幸的事,谁来拯救?
Java
1 | try { |
Python
1 | for line in open("book.txt"): |
方法/函数
在钢铁侠多次要求取世界电影票房排名前10的榜单,和前3后,贾维斯进化了。
Java版贾维斯
1 | private String fetchHtmlFromMojo() { |
Python版贾维斯
1 | def fetch_html_from_mojo(): |
类
终极贾维斯
Java
1 | public class Robot { |
Python
1 | class Robot: |
结论
Java vs Python,谁胜出?说实话,颜值方面Python确实高过Java很多(语法简洁,作者头发浓密),但是,Java在互联网攻城掠地,Python在人工智能快速崛起,各有各的好,非要说谁胜出,当然是我们程序猿自己了,理解编程语言的共性,拥抱编程语言的多样性,让我们可以快速在不同场景做出合适的选择,创造属于程序猿的未来。